#include <bits/stdc++.h>

using namespace std;

const int N = 1e5 + 10;
int n;
long long a[N];
long long l[N],r[N];
int tx;
long long sx[N];
int main()
{
    cin >> n;
    for(int i = 1; i<=n; i++)cin >> a[i];
    a[n+1] = 0;
    for(int i = 1; i<=n+1; i++){
        while(tx && a[sx[tx]] > a[i]){
            r[sx[tx]] = i - sx[tx];
            l[sx[tx]] = sx[tx] - sx[tx - 1]; 
            //入股tx等于1还进行出栈，说明这个数是当前
            tx--;
        }
     
        sx[++tx] = i;
    }
    // for(int i = 1; i<=n; i++)
    // cout <<"l[i]:" <<l[i] << " r[i]:" << r[i] <<'\n';
   
    long long ans = 0;
    for(int i = 1; i<=n; i++)
    ans = max(ans,(r[i] +l[i] - 1) * a[i]);
    cout << ans;
   
   return 0;
}
